/**
 * 
 */
package com.nari.heatshare.action;

import java.io.File;
import java.io.FileInputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.struts2.json.JSONUtil;
import org.apache.struts2.json.annotations.JSON;

import com.nari.baseinfo.model.IBuilding;
import com.nari.baseinfo.model.IBuildingUnit;
import com.nari.baseinfo.model.ICommunity;
import com.nari.baseinfo.model.IConcentrator;
import com.nari.baseinfo.model.IHeatMeter;
import com.nari.baseinfo.model.IHeatRoom;
import com.nari.baseinfo.model.IProject;
import com.nari.baseinfo.model.IShareArea;
import com.nari.baseinfo.service.IBuildingService;
import com.nari.baseinfo.service.IBuildingUnitService;
import com.nari.baseinfo.service.ICommunityService;
import com.nari.baseinfo.service.IConcentratorService;
import com.nari.baseinfo.service.IHeatMeterService;
import com.nari.baseinfo.service.IHeatRoomService;
import com.nari.baseinfo.service.IProjectService;
import com.nari.baseinfo.service.IShareAreaService;
import com.nari.coreframe.action.struts2.JSONActionSupport;
import com.nari.heatshare.model.IAssignMeter;
import com.nari.heatshare.model.IAssignMeterDataGather;
import com.nari.heatshare.model.IHeatMeterDataGather;
import com.nari.heatshare.model.IShareAreaResult;
import com.nari.heatshare.service.IAssignMeterDataGatherService;
import com.nari.heatshare.service.IAssignMeterService;
import com.nari.heatshare.service.IHeatMeterDataGatherService;
import com.nari.heatshare.service.IShareAreaResultService;
import com.nari.heatshare.service.IUserShareResultService;
import com.nari.heatshare.utils.AreaResultVerifyInfo;
import com.nari.heatshare.utils.excelexport.heatcharge.ShareAreaResultBillExporter;
import com.nari.heatshare.utils.excelexport.heatcharge.vo.AreaResultBillListVo;
import com.nari.heatshare.utils.excelexport.heatcharge.vo.AreaResultBillTotalVo;
import com.nari.platform.date.CalendarConstants;
import com.nari.platform.date.CalendarUtils;
import com.nari.platform.model.PageCond;
import com.nari.platform.model.ResponseMsg;
import com.nari.platform.model.ResultWithPageCond;
import com.opensymphony.xwork2.Action;
import com.sohoometer.web.excel.ExcelExportUtils;

/**
 * 
 * @author Xiaopeng
 * @date 2013-8-19
 */
public class ShareAreaResultAction extends JSONActionSupport {
	private static final long serialVersionUID = 3384960363515071485L;
	private IShareAreaResultService iShareAreaResultService;
	private IUserShareResultService iUserShareResultService;
	private IProjectService iProjectService;
	private ICommunityService iCommunityService;
	private IShareAreaService iShareAreaService;
	private IBuildingService iBuildingService;
	private IBuildingUnitService iBuildingUnitService;
	private IHeatRoomService iHeatRoomService;
	private IHeatMeterService iHeatMeterService;
	private IHeatMeterDataGatherService iHeatMeterDataGatherService;
	private IAssignMeterService iAssignMeterService;
	private IConcentratorService iConcentratorService;
	private IAssignMeterDataGatherService iAssignMeterDataGatherService;
	// 分摊域分摊结果查询
	private String projectUID;
	private String communityUID;
	private String shareAreaUID;
	private String shareName;
	private List<IProject> projectList;
	private List<ICommunity> communityList;
	private List<IShareArea> shareAreaList;
	// 分页查询
	private int pageIndex = 1; // 默认查询第一页列表
	private PageCond pageCond;
	private int pageSize;
	private ResultWithPageCond<IShareAreaResult> areaResultPage;
	private Map<String, String> pageCityMap;
	private Map<String, String> pageProjectMap;
	private Map<String, String> pageCommunityMap;
	private Map<String, String> pageBuildingMap; // 所属楼栋id-buildingName映射表
	private Map<String, String> pageShareAreaMap;
	// 分摊域分摊信息管理
	private String areaResultUID;
	private IShareAreaResult shareAreaResult;
	// 所属分摊域
	private IShareArea shareArea;
	// 所属小区
	private ICommunity community;
	//所属项目
	private IProject project;
	//所属楼栋
	private IBuilding building;
	//分摊域分摊信息校验
	private AreaResultVerifyInfo areaResultVerifyInfo;
	private String illegalVerifyInfo;
	private String illegalIDList;
	private String infoSort;
	private String roomOwnerList;
	private String meterNoList;
	private String seriousNumList;
	//热用户修正信息查询
	private String buildingUID;
	private List<IBuilding> buildingList;
	private String houseNo;
	private ResultWithPageCond<IHeatRoom> heatRoomPage;
	private String heatRoomUID;
	private IHeatRoom heatRoom;
	private List<IBuildingUnit> buildingUnitList;
	//热量表数据修正信息查询
	private String meterNo;
	private ResultWithPageCond<IHeatMeterDataGather> heatMeterDataPage;
	private String meterDataUID;
	private String heatMeterUID;
	private IHeatMeter heatMeter;
	private Object meterData;
	private List<IHeatMeter> heatMeterList;
	private Date recordTime;
	private List<IHeatMeterDataGather> historyHeatMeterDatas;
	private double sumHeat;
	private Integer sumHeatUnit;
	//分配表数据修正信息查询
	private String seriousNum;
	private Date readTime;
	private ResultWithPageCond<IAssignMeterDataGather> assignMeterDataPage;
	private String assignMeterUID;
	private IAssignMeter assignMeter;
	private List<IAssignMeter> assignMeterList;
	private String concentratorUID;
	private List<IConcentrator> concentratorList;
	private List<IHeatRoom> heatRoomList;
	private List<IAssignMeterDataGather> historyAssignMeterDatas;
	private double readNum;
	private double backTmperature;
	private double fontTemperature;
	//数据平滑处理
	private Date startDate;
	private Date endDate;
	//分摊域分摊账单导出
	private String diskFilePath;

	/**
	 * 分页查询分摊域分摊结果列表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-2
	 */
	public String queryAreaResultPage() throws Exception {
		// 所属项目列表
		this.projectList = this.iProjectService.queryAllProjectInOrder();
		if (this.projectList == null) {
			this.projectList = new ArrayList<IProject>();
		}
		// 所属小区列表
		if (this.projectUID != null && !"".equals(projectUID)) {
			this.communityList = this.iCommunityService.queryCommunitysByBelongings(null, null, null, projectUID);
		} else {
			this.communityList = new ArrayList<ICommunity>();
		}
		// 所属分摊域
		this.shareAreaList = this.iShareAreaService.queryShareAreaByBelongings(
				projectUID, communityUID);
		if (shareAreaList == null) {
			this.shareAreaList = new ArrayList<IShareArea>();
		}
		// 分页信息
		this.pageCond = new PageCond();
		int start = (this.pageIndex - 1) * this.pageCond.getLimit();
		this.pageCond.setStart(start);
		// 分页结果
		this.areaResultPage = this.iShareAreaResultService.queryAreaResultPage(projectUID, 
				communityUID, shareAreaUID, shareName, pageCond);
		// 计算结果集的页数
		this.pageSize = new BigDecimal(this.areaResultPage.getPageCond().getTotal())
				.divide(new BigDecimal(this.areaResultPage.getPageCond().getLimit()), RoundingMode.UP)
				.intValue();
		if (pageSize == 0) pageSize = 1;
		// 所属城市映射表
		this.pageCityMap = this.iShareAreaResultService.queryReferCitysByAreaResultList(areaResultPage.getList());
		// 所属项目映射表
		this.pageProjectMap = new HashMap<String, String>();
		for (IProject project : projectList) {
			this.pageProjectMap.put(project.getId(), project.getProjectName());
		}
		// 所属小区映射表
		this.pageCommunityMap = this.iShareAreaResultService
				.queryReferCommunitysByAreaResultList(areaResultPage.getList());
		// 所属分摊域映射表
		this.pageShareAreaMap = this.iShareAreaResultService.queryReferShareAreasByAreaResultList(areaResultPage.getList());
		return "areaResultPage";
	}

	/**
	 * 分摊域分摊信息管理
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-2
	 */
	public String queryAreaResultForManage() throws Exception {
		if (this.areaResultUID != null && !"".equals(areaResultUID)) {
			this.shareAreaResult = this.iShareAreaResultService.queryEntityById(areaResultUID);
			// 分摊域分摊结果所属关系
			this.projectUID = shareAreaResult.getProjectID();
			this.communityUID = shareAreaResult.getCommunityID();
			this.shareAreaUID = shareAreaResult.getShareAreaID();
		}
		// 所属项目列表
		this.projectList = this.iProjectService.queryAllProjectInOrder();
		if (this.projectList == null) {
			this.projectList = new ArrayList<IProject>();
		}
		// 所属小区列表
		if (this.projectUID != null && !"".equals(projectUID)) {
			this.communityList = this.iCommunityService.queryCommunitysByBelongings(null, null, null, projectUID);
		} else {
			this.communityList = new ArrayList<ICommunity>();
		}
		// 所属分摊域
		this.shareAreaList = this.iShareAreaService.queryShareAreaByBelongings(projectUID, communityUID);
		if (shareAreaList == null) {
			this.shareAreaList = new ArrayList<IShareArea>();
		}
		return "areaResultManage";
	}

	/**
	 * 分摊域分摊信息保存或修改
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-2
	 */
	public String saveOrUpdateAreaResult() throws Exception {
		this.rmsg = this.iShareAreaResultService.saveOrUpdateAreaResult(shareAreaResult);
		this.writeJsonStrToResponse(JSONUtil.serialize(this.rmsg));
		return Action.SUCCESS;
	}

	/**
	 * 通过唯一标识删除分摊域分摊结果
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-2
	 */
	public String deleteAreaResultByUID() throws Exception {
		this.rmsg = this.iShareAreaResultService.deleteAreaResultBatchByUID(areaResultUID);
		this.writeJsonStrToResponse(JSONUtil.serialize(this.rmsg));
		return Action.SUCCESS;
	}
	
	/**
	 * 分摊域分摊信息校验
	 * @return
	 * @throws Exception
	 * @author 钮小强
	 * @date 2013-9-13
	 */
	public String verifyAreaResultInfo() throws Exception {
		//分摊域分摊信息 
		this.shareAreaResult = this.iShareAreaResultService.queryEntityById(areaResultUID);
		//所属分摊域信息
		this.shareArea = this.iShareAreaService.queryEntityById(shareAreaResult.getShareAreaID());
		//校验信息
		this.areaResultVerifyInfo = iShareAreaResultService.checkCalcAreaResultCondition(areaResultUID);
		return "infoVerify"; 
	}
	
	/**
	 * 分摊域分摊校验信息更正页面初始化
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-26
	 */
	public String areaResultInfoCorrectMgr() throws Exception {
		//分摊域分摊信息 
		this.shareAreaResult = this.iShareAreaResultService.queryEntityById(areaResultUID);
		//所属分摊域信息
		this.shareArea = this.iShareAreaService.queryEntityById(shareAreaResult.getShareAreaID());
		//初始化信息：
		//areaResultUID：分摊域分摊的ID标识
		//illegalVerifyInfo：校验错误提示信息
		//infoSort：校验信息类别(主要包括heatRoom[热用户]、heatMeterData[热量表数据]、assignMeterData[分配表数据])
		//illegalIDList：校错信息的ID标识
		//meterNoList：缺少热量表数据的热量表表号
		//roomOwnerList：参与计量收费，但缺少分配表的热用户
		//seriousNumList：缺少分配表数据的分配表表号
		return "verifyPageMgr";
	}
	
	/**
	 * 分类别查询分摊域分摊对应信息列表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-30
	 */
	public String queryAreaResultInfoListBySort() throws Exception {
		//所属分摊域信息
		this.shareArea = iShareAreaService.queryEntityById(shareAreaUID);
		this.projectUID = this.shareArea.getProjectID();
		this.communityUID = this.shareArea.getCommunityID();
		// 分页信息
		this.pageCond = new PageCond();
		int start = (this.pageIndex - 1) * this.pageCond.getLimit();
		this.pageCond.setStart(start);
		//热用户信息修正
		if("heatRoom".equals(infoSort)) {
			//所属楼栋列表
			this.buildingList = iBuildingService.queryBuildingByBelongings(projectUID, communityUID);
			this.heatRoomPage = iHeatRoomService.queryHeatRoomPageByAreaUID(shareAreaUID, houseNo, projectUID, communityUID, buildingUID, pageCond);
			// 计算结果集的页数
			this.pageSize = new BigDecimal(this.heatRoomPage.getPageCond().getTotal())
					.divide(new BigDecimal(this.heatRoomPage.getPageCond().getLimit()), RoundingMode.UP)
					.intValue();
			if (pageSize == 0) pageSize = 1;
			// 项目映射表
			this.projectList = this.iProjectService.queryAllProjectInOrder();
			this.pageProjectMap = new HashMap<String, String>();
			for (IProject project : this.projectList) {
				this.pageProjectMap.put(project.getId(), project.getProjectName());
			}
			// 小区映射表
			this.pageCommunityMap = this.iHeatRoomService.queryReferCommunitysByRoomList(heatRoomPage.getList());
			// 楼栋映射表
			this.pageBuildingMap = this.iHeatRoomService.queryReferBuildingsByRoomList(heatRoomPage.getList());
			return "heatRoomVerify";
		}
		//热量表数据信息修正
		if("heatMeterData".equals(infoSort)) {
			this.heatMeterDataPage = iHeatMeterDataGatherService.queryMeterDataPageByAreaUID(shareAreaUID, meterNo, pageCond);
			// 计算结果集的页数
			this.pageSize = new BigDecimal(this.heatMeterDataPage.getPageCond().getTotal())
					.divide(new BigDecimal(this.heatMeterDataPage.getPageCond().getLimit()), RoundingMode.UP)
					.intValue();
			if (pageSize == 0) pageSize = 1;
			return "heatMeterDataVerify";
		}
		//分配表数据信息修正
		if("assignMeterData".equals(infoSort)) {
			this.assignMeterDataPage = iAssignMeterDataGatherService.queryMeterDataPageByAreaUID(shareAreaUID, seriousNum, readTime, pageCond);
			// 计算结果集的页数
			this.pageSize = new BigDecimal(this.assignMeterDataPage.getPageCond().getTotal())
					.divide(new BigDecimal(this.assignMeterDataPage.getPageCond().getLimit()), RoundingMode.UP)
					.intValue();
			if (pageSize == 0) pageSize = 1;
			return "assignMeterDataVerify";
		}
		//返回异常页面
		return "exception";
	}
	
	/**
	 * 热量表数据、分配表数据信息修正初始化
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-12
	 */
	public String initMeterDataVerifyManage() throws Exception {
		//热量表数据信息修正
		if("heatMeterData".equals(infoSort)) {
			//所属项目列表
			this.projectList = this.iProjectService.queryAllProjectInOrder();
			if(this.projectList == null) {
				this.projectList = new ArrayList<IProject>();
			}
			//所属小区
			this.communityList = this.iCommunityService.queryCommunitysByBelongings(null, null, null, projectUID);
			//所属分摊域
			this.shareAreaList = this.iShareAreaService.queryShareAreaByBelongings(projectUID, communityUID);
			//热量表
			this.heatMeterList = this.iHeatMeterService.queryMetersByBelongs(projectUID, communityUID, buildingUID, shareAreaUID);
			return "heatMeterDataInit";
		}
		//分配表数据信息修正
		if("assignMeterData".equals(infoSort)) {
			//所属项目列表
			this.projectList = this.iProjectService.queryAllProjectInOrder();
			if(this.projectList == null) {
				this.projectList = new ArrayList<IProject>();
			}
			//所属小区
			this.communityList = this.iCommunityService.queryCommunitysByBelongings(null, null, null, projectUID);
			//所属楼栋列表
			this.buildingList = this.iBuildingService.queryBuildingByBelongings(projectUID, communityUID);
			//所属热用户列表
			this.heatRoomList = this.iHeatRoomService.queryHeatRoomsByBelongs(projectUID, communityUID, null, buildingUID);
			//分配表列表
			this.assignMeterList = this.iAssignMeterService.queryAssignMetersByBelongs(projectUID, communityUID, buildingUID, heatRoomUID);
			return "assignMeterDataInit";
		}
		//返回异常页面
		return "exception";
	}
	
	/**
	 * 分类别查询分摊域分摊对应信息,并进行信息更正
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-2
	 */
	public String queryAreaResultInfoBySortForManage() throws Exception {
		//热用户信息修正
		if("heatRoom".equals(infoSort)) {
			// 热用户信息
			if (this.heatRoomUID != null && !"".equals(heatRoomUID)) {
				this.heatRoom = this.iHeatRoomService.queryEntityById(heatRoomUID);
				this.projectUID = this.heatRoom.getProjectID();
				this.communityUID = this.heatRoom.getCommunityID();
				this.buildingUID = this.heatRoom.getBuildingID();
			}
			// 所属项目列表
			this.projectList = this.iProjectService.queryAllProjectInOrder();
			if (this.projectList == null) {
				this.projectList = new ArrayList<IProject>();
			}
			// 所属小区列表
			if (projectUID != null && !"".equals(projectUID)) {
				this.communityList = this.iCommunityService.queryCommunitysByBelongings(null, null, null, projectUID);
			} else {
				this.communityList = new ArrayList<ICommunity>();
			}
			// 所属楼栋列表、所属分摊区域列表
			if ((this.projectUID != null && !"".equals(projectUID))
					|| (this.communityUID != null && !"".equals(communityUID))) {
				this.buildingList = this.iBuildingService.queryBuildingByBelongings(projectUID, communityUID);
				this.shareAreaList = this.iShareAreaService.queryShareAreaByBelongings(projectUID, communityUID);
			} else {
				this.buildingList = new ArrayList<IBuilding>();
				this.shareAreaList = new ArrayList<IShareArea>();
			}
			// 所属楼栋单元列表
			if (this.buildingUID != null && !"".equals(buildingUID)) {
				this.buildingUnitList = this.iBuildingUnitService.queryUintListByBuildingUID(buildingUID, null);
			} else {
				this.buildingUnitList = new ArrayList<IBuildingUnit>();
			}
			return "roomVerifyManage";
		}
		//热量表数据信息修正
		if("heatMeterData".equals(infoSort)) {
			if(this.meterDataUID!=null && !"".equals(meterDataUID)) { //修改
				//热量表数据
				this.meterData = this.iHeatMeterDataGatherService.queryEntityById(meterDataUID);
				//热量表
				IHeatMeterDataGather heatMeterDataGather = (IHeatMeterDataGather) meterData;
				this.heatMeter = this.iHeatMeterService.queryMeterByMeterNo(heatMeterDataGather.getMeterNo());
				//抄表时间
				this.recordTime = heatMeterDataGather.getRecordTime();
			} else { //新增
				this.heatMeter = iHeatMeterService.queryEntityById(heatMeterUID);
			}
			//所属项目
			this.project = this.iProjectService.queryEntityById(heatMeter.getProjectID());
			//所属小区
			this.community = this.iCommunityService.queryEntityById(heatMeter.getCommunityID());
			//所属分摊区域
			this.shareArea = this.iShareAreaService.queryEntityById(heatMeter.getShareAreaID());
			return "heatMeterDataVerifyManage";
		}
		//分配表数据信息修正
		if("assignMeterData".equals(infoSort)) {
			if(this.meterDataUID!=null && !"".equals(meterDataUID)) { //修改
				//分配表数据
				this.meterData = this.iAssignMeterDataGatherService.queryEntityById(meterDataUID);
				//分配表
				IAssignMeterDataGather assignMeterData = (IAssignMeterDataGather) meterData;
				this.assignMeter = this.iAssignMeterService.queryMeterBySeriousNum(assignMeterData.getSeriousNum());
				//上传时间
				this.readTime = assignMeterData.getReadTime();
			} else { //新增
				this.assignMeter = iAssignMeterService.queryEntityById(assignMeterUID);
			}
			//所属项目
			this.project = iProjectService.queryEntityById(assignMeter.getProjectID());
			//所属小区
			this.community = iCommunityService.queryEntityById(assignMeter.getCommunityID());
			//所属楼栋
			this.building = this.iBuildingService.queryEntityById(assignMeter.getBuildingID());
			//所属热用户
			this.heatRoom = this.iHeatRoomService.queryEntityById(assignMeter.getRoomId());
			return "assignMeterDataVerifyManage";
		}
		return "exception";
	}
	
	/**
	 * 根据热量表表号（或分配表表号）、抄表日期查询最近的三次历史数据
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-14
	 */
	public String queryHistoryMeterData() throws Exception {
		//热量表数据信息修正
		if("heatMeterData".equals(infoSort)) {
			//取前三次历史数据，作为数据平滑的依据
			this.historyHeatMeterDatas = iHeatMeterDataGatherService.queryHistoryMeterData(meterNo, recordTime, 3);
			return "historyHeatMeterDatas";
		}
		//分配表数据信息修正
		if("assignMeterData".equals(infoSort)) {
			//取前三次历史数据，作为数据平滑的依据
			this.historyAssignMeterDatas = iAssignMeterDataGatherService.queryHistoryMeterData(seriousNum, readTime, 3);
			return "historyAssignMeterDatas";
		}
		return "exception";
	}
	
	/**
	 * 新增工人干预的平滑数据，或修改校验失败的热量表(分配表)数据
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-14
	 */
	public String saveOrUpdateMeterData() throws Exception {
		//热量表数据信息修正
		if("heatMeterData".equals(infoSort)) {
			if(meterDataUID!=null && !"".equals(meterDataUID)) { //热量表数据修改
				IHeatMeterDataGather heatMeterData = iHeatMeterDataGatherService.queryEntityById(meterDataUID);
				heatMeterData.setSumHeat(sumHeat);
				heatMeterData.setSumHeatUnit(sumHeatUnit);
				iHeatMeterDataGatherService.updateEntity(heatMeterData, meterDataUID);
			} else { //人工干预的平滑数据新增
				this.meterDataUID = iHeatMeterDataGatherService.saveTransitionMeterData(meterNo, recordTime, sumHeat, sumHeatUnit);
			}
		}
		//分配表数据信息修正
		if("assignMeterData".equals(infoSort)) {
			if(meterDataUID!=null && !"".equals(meterDataUID)) { //分配表数据修改
				IAssignMeterDataGather assignMeterData = iAssignMeterDataGatherService.queryEntityById(meterDataUID);
				assignMeterData.setReadNum(readNum);
				assignMeterData.setBackTmperature(backTmperature);
				assignMeterData.setFontTemperature(fontTemperature);
				iAssignMeterDataGatherService.updateEntity(assignMeterData, meterDataUID);
			} else { //人工干预的平滑数据新增
				this.meterDataUID = iAssignMeterDataGatherService.saveTransitionMeterData(seriousNum, readTime, readNum, backTmperature, fontTemperature);
			}
		}
		this.illegalIDList = illegalIDList.replaceAll(meterDataUID, "");
		this.rmsg = ResponseMsg.getInstance(true, illegalIDList);
		this.writeJsonStrToResponse(JSONUtil.serialize(this.rmsg));
		return Action.SUCCESS;
	}

	/**
	 * 分摊域分摊计算
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-9-6
	 */
	public String calcAreaResultByUID() throws Exception {
		this.rmsg = iShareAreaResultService.saveAreaResultCalculation(areaResultUID);
		this.writeJsonStrToResponse(JSONUtil.serialize(rmsg));
		return Action.SUCCESS;
	}

	/**
	 * 数据平滑处理
	 * @return
	 * @throws Exception
	 */
	public String transitionMeterData() throws Exception {
		this.rmsg = ResponseMsg.getInstance(true, "");
		//热量表数据的数据平滑
		if("heatMeterData".equals(infoSort)) {
			this.rmsg = iHeatMeterDataGatherService.saveAutoTransitionMeterData(shareAreaUID, startDate, endDate);
		}
		//分配表数据的数据平滑
		if("assignMeterData".equals(infoSort)) {
			this.rmsg = iAssignMeterDataGatherService.saveAutoTransitionMeterData(shareAreaUID, startDate, endDate);
		}
		this.writeJsonStrToResponse(JSONUtil.serialize(rmsg));
		return Action.SUCCESS;
	}
	
	/**
	 * 查看分摊域分摊账单
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-16
	 */
	public String queryAreaResultBillDetail() throws Exception {
		//分摊域分摊
		this.shareAreaResult = iShareAreaResultService.queryEntityById(areaResultUID);
		// 所属城市映射表
		this.pageCityMap = this.iShareAreaResultService.queryReferCitysByAreaResultList(Arrays.asList(new IShareAreaResult[]{
				shareAreaResult
		}));
		//所属项目
		this.project = iProjectService.queryEntityById(shareAreaResult.getProjectID());
		//所属小区
		this.community = iCommunityService.queryEntityById(shareAreaResult.getCommunityID());
		//所属分摊域
		this.shareArea = iShareAreaService.queryEntityById(shareAreaResult.getShareAreaID());
		return "areaResultDetail";
	}
	
	/**
	 * 导出分摊域分摊账单
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-4-2
	 */
	public String exportAreaResultBill() throws Exception {
		//分摊域分摊
		this.shareAreaResult = iShareAreaResultService.queryEntityById(areaResultUID);
		if(shareAreaResult == null) {
			return "areaResultNotExist";
		}
		//分摊域账单导出实体
		AreaResultBillTotalVo totalBillVo = new AreaResultBillTotalVo();
		totalBillVo.setShareAreaResult(shareAreaResult);
		// 所属城市映射表
		this.pageCityMap = this.iShareAreaResultService.queryReferCitysByAreaResultList(Arrays.asList(new IShareAreaResult[]{
				shareAreaResult
		}));
		String belongCitys = ShareAreaResultBillExporter.getBelongCitys(shareAreaResult, pageCityMap);
		totalBillVo.setBelongCitys(belongCitys);
		//所属项目
		this.project = iProjectService.queryEntityById(shareAreaResult.getProjectID());
		totalBillVo.setProject(project);
		//所属小区
		this.community = iCommunityService.queryEntityById(shareAreaResult.getCommunityID());
		totalBillVo.setCommunity(community);
		//所属分摊域
		this.shareArea = iShareAreaService.queryEntityById(shareAreaResult.getShareAreaID());
		totalBillVo.setShareArea(shareArea);
		//查询分摊域分摊的明细账单
		List<AreaResultBillListVo> areaResultBillList = iUserShareResultService.queryAreaResultExportList(shareAreaResult.getId());
		totalBillVo.setAreaResultBillList(areaResultBillList);
		//生成Excel账单
		File diskFolder = new File(this.diskFilePath);
		if(!diskFolder.exists()) {
			diskFolder.mkdirs();
		}
		//Excel导出名称
		String timestamp = CalendarUtils.parseDateToString(new Date(), CalendarConstants.dateTimeFormat_stamp);
		String excelFileName = shareAreaResult.getShareName() + "-账单导出" + timestamp + ".xls";
		this.setOutputFileName(excelFileName);
		//Excel文件生成路径
		String excelFilePath = this.diskFilePath + "\\" + excelFileName;
//		this.rmsg = ShareAreaResultBillExporter.exportAreaResultBill(excelFilePath, totalBillVo);   //以前的分摊账单导出
		this.rmsg = ExcelExportUtils.exportAreaResultBill(excelFilePath, totalBillVo);
		if(rmsg.isSuccess()) {
			//设置下载文件输出流
			this.setTargetFile(new FileInputStream(new File(excelFilePath)));
		}
		return "areaBillExport";
	}

	/**
	 * @return the iShareAreaResultService
	 */
	@JSON(serialize = false)
	public IShareAreaResultService getiShareAreaResultService() {
		return iShareAreaResultService;
	}

	/**
	 * @param iShareAreaResultService
	 *            the iShareAreaResultService to set
	 */
	public void setiShareAreaResultService(
			IShareAreaResultService iShareAreaResultService) {
		this.iShareAreaResultService = iShareAreaResultService;
	}

	/**
	 * @return the iUserShareResultService
	 */
	@JSON(serialize = false)
	public IUserShareResultService getiUserShareResultService() {
		return iUserShareResultService;
	}

	/**
	 * @param iUserShareResultService the iUserShareResultService to set
	 */
	public void setiUserShareResultService(
			IUserShareResultService iUserShareResultService) {
		this.iUserShareResultService = iUserShareResultService;
	}

	/**
	 * @return the iProjectService
	 */
	@JSON(serialize = false)
	public IProjectService getiProjectService() {
		return iProjectService;
	}

	/**
	 * @param iProjectService
	 *            the iProjectService to set
	 */
	public void setiProjectService(IProjectService iProjectService) {
		this.iProjectService = iProjectService;
	}

	/**
	 * @return the iCommunityService
	 */
	@JSON(serialize = false)
	public ICommunityService getiCommunityService() {
		return iCommunityService;
	}

	/**
	 * @param iCommunityService
	 *            the iCommunityService to set
	 */
	public void setiCommunityService(ICommunityService iCommunityService) {
		this.iCommunityService = iCommunityService;
	}

	/**
	 * @return the iShareAreaService
	 */
	@JSON(serialize = false)
	public IShareAreaService getiShareAreaService() {
		return iShareAreaService;
	}

	/**
	 * @param iShareAreaService the iShareAreaService to set
	 */
	public void setiShareAreaService(IShareAreaService iShareAreaService) {
		this.iShareAreaService = iShareAreaService;
	}

	/**
	 * @return the iBuildingService
	 */
	@JSON(serialize = false)
	public IBuildingService getiBuildingService() {
		return iBuildingService;
	}

	/**
	 * @param iBuildingService the iBuildingService to set
	 */
	public void setiBuildingService(IBuildingService iBuildingService) {
		this.iBuildingService = iBuildingService;
	}

	/**
	 * @return the iBuildingUnitService
	 */
	@JSON(serialize = false)
	public IBuildingUnitService getiBuildingUnitService() {
		return iBuildingUnitService;
	}

	/**
	 * @param iBuildingUnitService the iBuildingUnitService to set
	 */
	public void setiBuildingUnitService(IBuildingUnitService iBuildingUnitService) {
		this.iBuildingUnitService = iBuildingUnitService;
	}

	/**
	 * @return the iHeatRoomService
	 */
	@JSON(serialize = false)
	public IHeatRoomService getiHeatRoomService() {
		return iHeatRoomService;
	}

	/**
	 * @param iHeatRoomService the iHeatRoomService to set
	 */
	public void setiHeatRoomService(IHeatRoomService iHeatRoomService) {
		this.iHeatRoomService = iHeatRoomService;
	}

	/**
	 * @return the iHeatMeterService
	 */
	@JSON(serialize = false)
	public IHeatMeterService getiHeatMeterService() {
		return iHeatMeterService;
	}

	/**
	 * @param iHeatMeterService the iHeatMeterService to set
	 */
	public void setiHeatMeterService(IHeatMeterService iHeatMeterService) {
		this.iHeatMeterService = iHeatMeterService;
	}

	/**
	 * @return the iHeatMeterDataGatherService
	 */
	@JSON(serialize = false)
	public IHeatMeterDataGatherService getiHeatMeterDataGatherService() {
		return iHeatMeterDataGatherService;
	}

	/**
	 * @param iHeatMeterDataGatherService the iHeatMeterDataGatherService to set
	 */
	public void setiHeatMeterDataGatherService(
			IHeatMeterDataGatherService iHeatMeterDataGatherService) {
		this.iHeatMeterDataGatherService = iHeatMeterDataGatherService;
	}

	/**
	 * @return the iAssignMeterService
	 */
	@JSON(serialize = false)
	public IAssignMeterService getiAssignMeterService() {
		return iAssignMeterService;
	}

	/**
	 * @param iAssignMeterService the iAssignMeterService to set
	 */
	public void setiAssignMeterService(IAssignMeterService iAssignMeterService) {
		this.iAssignMeterService = iAssignMeterService;
	}

	/**
	 * @return the iConcentratorService
	 */
	@JSON(serialize = false)
	public IConcentratorService getiConcentratorService() {
		return iConcentratorService;
	}

	/**
	 * @param iConcentratorService the iConcentratorService to set
	 */
	public void setiConcentratorService(IConcentratorService iConcentratorService) {
		this.iConcentratorService = iConcentratorService;
	}

	/**
	 * @return the iAssignMeterDataGatherService
	 */
	@JSON(serialize = false)
	public IAssignMeterDataGatherService getiAssignMeterDataGatherService() {
		return iAssignMeterDataGatherService;
	}

	/**
	 * @param iAssignMeterDataGatherService the iAssignMeterDataGatherService to set
	 */
	public void setiAssignMeterDataGatherService(
			IAssignMeterDataGatherService iAssignMeterDataGatherService) {
		this.iAssignMeterDataGatherService = iAssignMeterDataGatherService;
	}

	/**
	 * @return the projectUID
	 */
	public String getProjectUID() {
		return projectUID;
	}

	/**
	 * @param projectUID
	 *            the projectUID to set
	 */
	public void setProjectUID(String projectUID) {
		this.projectUID = projectUID;
	}

	/**
	 * @return the communityUID
	 */
	public String getCommunityUID() {
		return communityUID;
	}

	/**
	 * @param communityUID
	 *            the communityUID to set
	 */
	public void setCommunityUID(String communityUID) {
		this.communityUID = communityUID;
	}

	/**
	 * @return the shareAreaUID
	 */
	public String getShareAreaUID() {
		return shareAreaUID;
	}

	/**
	 * @param shareAreaUID
	 *            the shareAreaUID to set
	 */
	public void setShareAreaUID(String shareAreaUID) {
		this.shareAreaUID = shareAreaUID;
	}

	/**
	 * @return the shareName
	 */
	public String getShareName() {
		return shareName;
	}

	/**
	 * @param shareName
	 *            the shareName to set
	 */
	public void setShareName(String shareName) {
		this.shareName = shareName;
	}

	/**
	 * @return the projectList
	 */
	public List<IProject> getProjectList() {
		return projectList;
	}

	/**
	 * @param projectList
	 *            the projectList to set
	 */
	public void setProjectList(List<IProject> projectList) {
		this.projectList = projectList;
	}

	/**
	 * @return the communityList
	 */
	public List<ICommunity> getCommunityList() {
		return communityList;
	}

	/**
	 * @param communityList
	 *            the communityList to set
	 */
	public void setCommunityList(List<ICommunity> communityList) {
		this.communityList = communityList;
	}

	/**
	 * @return the shareAreaList
	 */
	public List<IShareArea> getShareAreaList() {
		return shareAreaList;
	}

	/**
	 * @param shareAreaList
	 *            the shareAreaList to set
	 */
	public void setShareAreaList(List<IShareArea> shareAreaList) {
		this.shareAreaList = shareAreaList;
	}

	/**
	 * @return the pageIndex
	 */
	public int getPageIndex() {
		return pageIndex;
	}

	/**
	 * @param pageIndex
	 *            the pageIndex to set
	 */
	public void setPageIndex(int pageIndex) {
		this.pageIndex = pageIndex;
	}

	/**
	 * @return the pageCond
	 */
	public PageCond getPageCond() {
		return pageCond;
	}

	/**
	 * @param pageCond
	 *            the pageCond to set
	 */
	public void setPageCond(PageCond pageCond) {
		this.pageCond = pageCond;
	}

	/**
	 * @return the pageSize
	 */
	public int getPageSize() {
		return pageSize;
	}

	/**
	 * @param pageSize
	 *            the pageSize to set
	 */
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	/**
	 * @return the areaResultPage
	 */
	public ResultWithPageCond<IShareAreaResult> getAreaResultPage() {
		return areaResultPage;
	}

	/**
	 * @param areaResultPage
	 *            the areaResultPage to set
	 */
	public void setAreaResultPage(
			ResultWithPageCond<IShareAreaResult> areaResultPage) {
		this.areaResultPage = areaResultPage;
	}

	/**
	 * @return the pageCityMap
	 */
	public Map<String, String> getPageCityMap() {
		return pageCityMap;
	}

	/**
	 * @param pageCityMap
	 *            the pageCityMap to set
	 */
	public void setPageCityMap(Map<String, String> pageCityMap) {
		this.pageCityMap = pageCityMap;
	}

	/**
	 * @return the pageProjectMap
	 */
	public Map<String, String> getPageProjectMap() {
		return pageProjectMap;
	}

	/**
	 * @param pageProjectMap
	 *            the pageProjectMap to set
	 */
	public void setPageProjectMap(Map<String, String> pageProjectMap) {
		this.pageProjectMap = pageProjectMap;
	}

	/**
	 * @return the pageCommunityMap
	 */
	public Map<String, String> getPageCommunityMap() {
		return pageCommunityMap;
	}

	/**
	 * @param pageCommunityMap
	 *            the pageCommunityMap to set
	 */
	public void setPageCommunityMap(Map<String, String> pageCommunityMap) {
		this.pageCommunityMap = pageCommunityMap;
	}

	/**
	 * @return the pageBuildingMap
	 */
	public Map<String, String> getPageBuildingMap() {
		return pageBuildingMap;
	}

	/**
	 * @param pageBuildingMap the pageBuildingMap to set
	 */
	public void setPageBuildingMap(Map<String, String> pageBuildingMap) {
		this.pageBuildingMap = pageBuildingMap;
	}

	/**
	 * @return the pageShareAreaMap
	 */
	public Map<String, String> getPageShareAreaMap() {
		return pageShareAreaMap;
	}

	/**
	 * @param pageShareAreaMap
	 *            the pageShareAreaMap to set
	 */
	public void setPageShareAreaMap(Map<String, String> pageShareAreaMap) {
		this.pageShareAreaMap = pageShareAreaMap;
	}

	/**
	 * @return the areaResultUID
	 */
	public String getAreaResultUID() {
		return areaResultUID;
	}

	/**
	 * @param areaResultUID
	 *            the areaResultUID to set
	 */
	public void setAreaResultUID(String areaResultUID) {
		this.areaResultUID = areaResultUID;
	}

	/**
	 * @return the shareAreaResult
	 */
	public IShareAreaResult getShareAreaResult() {
		return shareAreaResult;
	}

	/**
	 * @param shareAreaResult
	 *            the shareAreaResult to set
	 */
	public void setShareAreaResult(IShareAreaResult shareAreaResult) {
		this.shareAreaResult = shareAreaResult;
	}

	/**
	 * @return the shareArea
	 */
	public IShareArea getShareArea() {
		return shareArea;
	}

	/**
	 * @param shareArea
	 *            the shareArea to set
	 */
	public void setShareArea(IShareArea shareArea) {
		this.shareArea = shareArea;
	}

	/**
	 * @return the community
	 */
	public ICommunity getCommunity() {
		return community;
	}

	/**
	 * @param community
	 *            the community to set
	 */
	public void setCommunity(ICommunity community) {
		this.community = community;
	}

	/**
	 * @return the project
	 */
	public IProject getProject() {
		return project;
	}

	/**
	 * @param project the project to set
	 */
	public void setProject(IProject project) {
		this.project = project;
	}

	/**
	 * @return the building
	 */
	public IBuilding getBuilding() {
		return building;
	}

	/**
	 * @param building the building to set
	 */
	public void setBuilding(IBuilding building) {
		this.building = building;
	}

	/**
	 * @return the areaResultVerifyInfo
	 */
	public AreaResultVerifyInfo getAreaResultVerifyInfo() {
		return areaResultVerifyInfo;
	}

	/**
	 * @param areaResultVerifyInfo the areaResultVerifyInfo to set
	 */
	public void setAreaResultVerifyInfo(AreaResultVerifyInfo areaResultVerifyInfo) {
		this.areaResultVerifyInfo = areaResultVerifyInfo;
	}

	/**
	 * @return the illegalVerifyInfo
	 */
	public String getIllegalVerifyInfo() {
		return illegalVerifyInfo;
	}

	/**
	 * @param illegalVerifyInfo the illegalVerifyInfo to set
	 */
	public void setIllegalVerifyInfo(String illegalVerifyInfo) {
		this.illegalVerifyInfo = illegalVerifyInfo;
	}

	/**
	 * @return the illegalIDList
	 */
	public String getIllegalIDList() {
		return illegalIDList;
	}

	/**
	 * @param illegalIDList the illegalIDList to set
	 */
	public void setIllegalIDList(String illegalIDList) {
		this.illegalIDList = illegalIDList;
	}

	/**
	 * @return the infoSort
	 */
	public String getInfoSort() {
		return infoSort;
	}

	/**
	 * @param infoSort the infoSort to set
	 */
	public void setInfoSort(String infoSort) {
		this.infoSort = infoSort;
	}

	/**
	 * @return the roomOwnerList
	 */
	public String getRoomOwnerList() {
		return roomOwnerList;
	}

	/**
	 * @param roomOwnerList the roomOwnerList to set
	 */
	public void setRoomOwnerList(String roomOwnerList) {
		this.roomOwnerList = roomOwnerList;
	}

	/**
	 * @return the meterNoList
	 */
	public String getMeterNoList() {
		return meterNoList;
	}

	/**
	 * @param meterNoList the meterNoList to set
	 */
	public void setMeterNoList(String meterNoList) {
		this.meterNoList = meterNoList;
	}

	/**
	 * @return the seriousNumList
	 */
	public String getSeriousNumList() {
		return seriousNumList;
	}

	/**
	 * @param seriousNumList the seriousNumList to set
	 */
	public void setSeriousNumList(String seriousNumList) {
		this.seriousNumList = seriousNumList;
	}

	/**
	 * @return the buildingUID
	 */
	public String getBuildingUID() {
		return buildingUID;
	}

	/**
	 * @param buildingUID the buildingUID to set
	 */
	public void setBuildingUID(String buildingUID) {
		this.buildingUID = buildingUID;
	}

	/**
	 * @return the buildingList
	 */
	public List<IBuilding> getBuildingList() {
		return buildingList;
	}

	/**
	 * @param buildingList the buildingList to set
	 */
	public void setBuildingList(List<IBuilding> buildingList) {
		this.buildingList = buildingList;
	}

	/**
	 * @return the houseNo
	 */
	public String getHouseNo() {
		return houseNo;
	}

	/**
	 * @param houseNo the houseNo to set
	 */
	public void setHouseNo(String houseNo) {
		this.houseNo = houseNo;
	}

	/**
	 * @return the heatRoomPage
	 */
	public ResultWithPageCond<IHeatRoom> getHeatRoomPage() {
		return heatRoomPage;
	}

	/**
	 * @param heatRoomPage the heatRoomPage to set
	 */
	public void setHeatRoomPage(ResultWithPageCond<IHeatRoom> heatRoomPage) {
		this.heatRoomPage = heatRoomPage;
	}

	/**
	 * @return the heatRoomUID
	 */
	public String getHeatRoomUID() {
		return heatRoomUID;
	}

	/**
	 * @param heatRoomUID the heatRoomUID to set
	 */
	public void setHeatRoomUID(String heatRoomUID) {
		this.heatRoomUID = heatRoomUID;
	}

	/**
	 * @return the heatRoom
	 */
	public IHeatRoom getHeatRoom() {
		return heatRoom;
	}

	/**
	 * @param heatRoom the heatRoom to set
	 */
	public void setHeatRoom(IHeatRoom heatRoom) {
		this.heatRoom = heatRoom;
	}

	/**
	 * @return the buildingUnitList
	 */
	public List<IBuildingUnit> getBuildingUnitList() {
		return buildingUnitList;
	}

	/**
	 * @param buildingUnitList the buildingUnitList to set
	 */
	public void setBuildingUnitList(List<IBuildingUnit> buildingUnitList) {
		this.buildingUnitList = buildingUnitList;
	}

	/**
	 * @return the meterNo
	 */
	public String getMeterNo() {
		return meterNo;
	}

	/**
	 * @param meterNo the meterNo to set
	 */
	public void setMeterNo(String meterNo) {
		this.meterNo = meterNo;
	}

	/**
	 * @return the heatMeterDataPage
	 */
	public ResultWithPageCond<IHeatMeterDataGather> getHeatMeterDataPage() {
		return heatMeterDataPage;
	}

	/**
	 * @param heatMeterDataPage the heatMeterDataPage to set
	 */
	public void setHeatMeterDataPage(
			ResultWithPageCond<IHeatMeterDataGather> heatMeterDataPage) {
		this.heatMeterDataPage = heatMeterDataPage;
	}

	/**
	 * @return the meterDataUID
	 */
	public String getMeterDataUID() {
		return meterDataUID;
	}

	/**
	 * @param meterDataUID the meterDataUID to set
	 */
	public void setMeterDataUID(String meterDataUID) {
		this.meterDataUID = meterDataUID;
	}

	/**
	 * @return the heatMeterUID
	 */
	public String getHeatMeterUID() {
		return heatMeterUID;
	}

	/**
	 * @param heatMeterUID the heatMeterUID to set
	 */
	public void setHeatMeterUID(String heatMeterUID) {
		this.heatMeterUID = heatMeterUID;
	}

	/**
	 * @return the heatMeter
	 */
	public IHeatMeter getHeatMeter() {
		return heatMeter;
	}

	/**
	 * @param heatMeter the heatMeter to set
	 */
	public void setHeatMeter(IHeatMeter heatMeter) {
		this.heatMeter = heatMeter;
	}

	/**
	 * @return the meterData
	 */
	public Object getMeterData() {
		return meterData;
	}

	/**
	 * @param meterData the meterData to set
	 */
	public void setMeterData(Object meterData) {
		this.meterData = meterData;
	}

	/**
	 * @return the heatMeterList
	 */
	public List<IHeatMeter> getHeatMeterList() {
		return heatMeterList;
	}

	/**
	 * @param heatMeterList the heatMeterList to set
	 */
	public void setHeatMeterList(List<IHeatMeter> heatMeterList) {
		this.heatMeterList = heatMeterList;
	}

	/**
	 * @return the recordTime
	 */
	public Date getRecordTime() {
		return recordTime;
	}

	/**
	 * @param recordTime the recordTime to set
	 */
	public void setRecordTime(Date recordTime) {
		this.recordTime = recordTime;
	}

	/**
	 * @return the historyHeatMeterDatas
	 */
	public List<IHeatMeterDataGather> getHistoryHeatMeterDatas() {
		return historyHeatMeterDatas;
	}

	/**
	 * @param historyHeatMeterDatas the historyHeatMeterDatas to set
	 */
	public void setHistoryHeatMeterDatas(
			List<IHeatMeterDataGather> historyHeatMeterDatas) {
		this.historyHeatMeterDatas = historyHeatMeterDatas;
	}

	/**
	 * @return the sumHeat
	 */
	public double getSumHeat() {
		return sumHeat;
	}

	/**
	 * @param sumHeat the sumHeat to set
	 */
	public void setSumHeat(double sumHeat) {
		this.sumHeat = sumHeat;
	}

	/**
	 * @return the sumHeatUnit
	 */
	public Integer getSumHeatUnit() {
		return sumHeatUnit;
	}

	/**
	 * @param sumHeatUnit the sumHeatUnit to set
	 */
	public void setSumHeatUnit(Integer sumHeatUnit) {
		this.sumHeatUnit = sumHeatUnit;
	}

	/**
	 * @return the seriousNum
	 */
	public String getSeriousNum() {
		return seriousNum;
	}

	/**
	 * @param seriousNum the seriousNum to set
	 */
	public void setSeriousNum(String seriousNum) {
		this.seriousNum = seriousNum;
	}

	/**
	 * @return the readTime
	 */
	public Date getReadTime() {
		return readTime;
	}

	/**
	 * @param readTime the readTime to set
	 */
	public void setReadTime(Date readTime) {
		this.readTime = readTime;
	}

	/**
	 * @return the assignMeterDataPage
	 */
	public ResultWithPageCond<IAssignMeterDataGather> getAssignMeterDataPage() {
		return assignMeterDataPage;
	}

	/**
	 * @param assignMeterDataPage the assignMeterDataPage to set
	 */
	public void setAssignMeterDataPage(
			ResultWithPageCond<IAssignMeterDataGather> assignMeterDataPage) {
		this.assignMeterDataPage = assignMeterDataPage;
	}

	/**
	 * @return the assignMeterUID
	 */
	public String getAssignMeterUID() {
		return assignMeterUID;
	}

	/**
	 * @param assignMeterUID the assignMeterUID to set
	 */
	public void setAssignMeterUID(String assignMeterUID) {
		this.assignMeterUID = assignMeterUID;
	}

	/**
	 * @return the assignMeter
	 */
	public IAssignMeter getAssignMeter() {
		return assignMeter;
	}

	/**
	 * @param assignMeter the assignMeter to set
	 */
	public void setAssignMeter(IAssignMeter assignMeter) {
		this.assignMeter = assignMeter;
	}

	/**
	 * @return the assignMeterList
	 */
	public List<IAssignMeter> getAssignMeterList() {
		return assignMeterList;
	}

	/**
	 * @param assignMeterList the assignMeterList to set
	 */
	public void setAssignMeterList(List<IAssignMeter> assignMeterList) {
		this.assignMeterList = assignMeterList;
	}

	/**
	 * @return the concentratorUID
	 */
	public String getConcentratorUID() {
		return concentratorUID;
	}

	/**
	 * @param concentratorUID the concentratorUID to set
	 */
	public void setConcentratorUID(String concentratorUID) {
		this.concentratorUID = concentratorUID;
	}

	/**
	 * @return the concentratorList
	 */
	public List<IConcentrator> getConcentratorList() {
		return concentratorList;
	}

	/**
	 * @param concentratorList the concentratorList to set
	 */
	public void setConcentratorList(List<IConcentrator> concentratorList) {
		this.concentratorList = concentratorList;
	}

	/**
	 * @return the heatRoomList
	 */
	public List<IHeatRoom> getHeatRoomList() {
		return heatRoomList;
	}

	/**
	 * @param heatRoomList the heatRoomList to set
	 */
	public void setHeatRoomList(List<IHeatRoom> heatRoomList) {
		this.heatRoomList = heatRoomList;
	}

	/**
	 * @return the historyAssignMeterDatas
	 */
	public List<IAssignMeterDataGather> getHistoryAssignMeterDatas() {
		return historyAssignMeterDatas;
	}

	/**
	 * @param historyAssignMeterDatas the historyAssignMeterDatas to set
	 */
	public void setHistoryAssignMeterDatas(
			List<IAssignMeterDataGather> historyAssignMeterDatas) {
		this.historyAssignMeterDatas = historyAssignMeterDatas;
	}

	/**
	 * @return the readNum
	 */
	public double getReadNum() {
		return readNum;
	}

	/**
	 * @param readNum the readNum to set
	 */
	public void setReadNum(double readNum) {
		this.readNum = readNum;
	}

	/**
	 * @return the backTmperature
	 */
	public double getBackTmperature() {
		return backTmperature;
	}

	/**
	 * @param backTmperature the backTmperature to set
	 */
	public void setBackTmperature(double backTmperature) {
		this.backTmperature = backTmperature;
	}

	/**
	 * @return the fontTemperature
	 */
	public double getFontTemperature() {
		return fontTemperature;
	}

	/**
	 * @param fontTemperature the fontTemperature to set
	 */
	public void setFontTemperature(double fontTemperature) {
		this.fontTemperature = fontTemperature;
	}

	/**
	 * @return the startDate
	 */
	public Date getStartDate() {
		return startDate;
	}

	/**
	 * @param startDate the startDate to set
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	/**
	 * @return the endDate
	 */
	public Date getEndDate() {
		return endDate;
	}

	/**
	 * @param endDate the endDate to set
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	/**
	 * @return the diskFilePath
	 */
	public String getDiskFilePath() {
		return diskFilePath;
	}

	/**
	 * @param diskFilePath the diskFilePath to set
	 */
	public void setDiskFilePath(String diskFilePath) {
		this.diskFilePath = diskFilePath;
	}

}
